# SPDX-License-Identifier: Apache-2.0
# Generated from SubstraitType.g4 by ANTLR 4.13.2
from antlr4 import *
from io import StringIO
import sys
if sys.version_info[1] > 5:
    from typing import TextIO
else:
    from typing.io import TextIO


def serializedATN():
    return [
        4,0,80,626,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
        2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,
        13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,
        19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,
        26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,
        32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,
        39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,
        45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,
        52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,
        58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,
        65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,
        71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,
        78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,1,0,1,0,1,0,1,0,
        5,0,172,8,0,10,0,12,0,175,9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,184,
        8,1,11,1,12,1,185,1,1,3,1,189,8,1,1,1,5,1,192,8,1,10,1,12,1,195,
        9,1,1,1,1,1,1,1,1,1,1,1,1,2,4,2,203,8,2,11,2,12,2,204,1,2,1,2,1,
        3,1,3,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1,
        7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10,
        1,10,1,10,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,13,1,13,
        1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,
        1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,
        1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,
        1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20,
        1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,
        1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,
        1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,
        1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,
        1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,
        1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,
        1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,
        1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,
        1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,
        1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,
        1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,
        1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,35,1,35,1,35,
        1,35,1,35,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,38,1,38,
        1,38,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,41,
        1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,44,1,44,
        1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,
        1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,49,
        1,49,1,49,1,49,1,50,1,50,1,50,1,51,1,51,1,51,1,52,1,52,1,53,1,53,
        1,54,1,54,1,55,1,55,1,56,1,56,1,57,1,57,1,58,1,58,1,58,1,59,1,59,
        1,59,1,60,1,60,1,60,1,61,1,61,1,62,1,62,1,63,1,63,1,64,1,64,1,65,
        1,65,1,66,1,66,1,67,1,67,1,68,1,68,1,69,1,69,1,70,1,70,1,71,1,71,
        1,72,1,72,1,73,1,73,1,74,1,74,1,75,1,75,1,75,1,75,1,76,1,76,1,76,
        1,77,1,77,1,77,1,78,1,78,5,78,597,8,78,10,78,12,78,600,9,78,1,78,
        3,78,603,8,78,1,79,1,79,1,80,3,80,608,8,80,1,80,1,80,1,81,1,81,1,
        81,5,81,615,8,81,10,81,12,81,618,9,81,1,82,1,82,3,82,622,8,82,1,
        82,3,82,625,8,82,0,0,83,1,1,3,2,5,3,7,0,9,4,11,5,13,6,15,7,17,8,
        19,9,21,10,23,11,25,12,27,13,29,14,31,15,33,16,35,17,37,18,39,19,
        41,20,43,21,45,22,47,23,49,24,51,25,53,26,55,27,57,28,59,29,61,30,
        63,31,65,32,67,33,69,34,71,35,73,36,75,37,77,38,79,39,81,40,83,41,
        85,42,87,43,89,44,91,45,93,46,95,47,97,48,99,49,101,50,103,51,105,
        52,107,53,109,54,111,55,113,56,115,57,117,58,119,59,121,60,123,61,
        125,62,127,63,129,64,131,65,133,66,135,67,137,68,139,69,141,70,143,
        71,145,72,147,73,149,74,151,75,153,76,155,77,157,0,159,0,161,78,
        163,79,165,80,1,0,28,2,0,10,10,13,13,1,0,42,42,2,0,42,42,47,47,3,
        0,9,9,13,13,32,32,1,0,48,57,2,0,73,73,105,105,2,0,70,70,102,102,
        2,0,84,84,116,116,2,0,72,72,104,104,2,0,69,69,101,101,2,0,78,78,
        110,110,2,0,76,76,108,108,2,0,83,83,115,115,2,0,66,66,98,98,2,0,
        79,79,111,111,2,0,65,65,97,97,2,0,80,80,112,112,2,0,82,82,114,114,
        2,0,71,71,103,103,2,0,89,89,121,121,2,0,77,77,109,109,2,0,90,90,
        122,122,2,0,68,68,100,100,2,0,86,86,118,118,2,0,85,85,117,117,2,
        0,67,67,99,99,2,0,88,88,120,120,4,0,36,36,65,90,95,95,97,122,634,
        0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,
        1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,
        1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,
        1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,
        1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,
        1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,
        1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,
        1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,
        1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,
        1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,
        1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,
        0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,
        0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,
        131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,
        0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,
        1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,161,1,0,0,0,
        0,163,1,0,0,0,0,165,1,0,0,0,1,167,1,0,0,0,3,178,1,0,0,0,5,202,1,
        0,0,0,7,208,1,0,0,0,9,210,1,0,0,0,11,213,1,0,0,0,13,218,1,0,0,0,
        15,223,1,0,0,0,17,231,1,0,0,0,19,234,1,0,0,0,21,238,1,0,0,0,23,242,
        1,0,0,0,25,246,1,0,0,0,27,251,1,0,0,0,29,256,1,0,0,0,31,263,1,0,
        0,0,33,270,1,0,0,0,35,280,1,0,0,0,37,293,1,0,0,0,39,298,1,0,0,0,
        41,303,1,0,0,0,43,317,1,0,0,0,45,330,1,0,0,0,47,335,1,0,0,0,49,343,
        1,0,0,0,51,358,1,0,0,0,53,378,1,0,0,0,55,401,1,0,0,0,57,411,1,0,
        0,0,59,419,1,0,0,0,61,431,1,0,0,0,63,438,1,0,0,0,65,446,1,0,0,0,
        67,451,1,0,0,0,69,455,1,0,0,0,71,458,1,0,0,0,73,463,1,0,0,0,75,467,
        1,0,0,0,77,472,1,0,0,0,79,475,1,0,0,0,81,480,1,0,0,0,83,486,1,0,
        0,0,85,491,1,0,0,0,87,495,1,0,0,0,89,498,1,0,0,0,91,502,1,0,0,0,
        93,508,1,0,0,0,95,514,1,0,0,0,97,520,1,0,0,0,99,525,1,0,0,0,101,
        529,1,0,0,0,103,532,1,0,0,0,105,535,1,0,0,0,107,537,1,0,0,0,109,
        539,1,0,0,0,111,541,1,0,0,0,113,543,1,0,0,0,115,545,1,0,0,0,117,
        547,1,0,0,0,119,550,1,0,0,0,121,553,1,0,0,0,123,556,1,0,0,0,125,
        558,1,0,0,0,127,560,1,0,0,0,129,562,1,0,0,0,131,564,1,0,0,0,133,
        566,1,0,0,0,135,568,1,0,0,0,137,570,1,0,0,0,139,572,1,0,0,0,141,
        574,1,0,0,0,143,576,1,0,0,0,145,578,1,0,0,0,147,580,1,0,0,0,149,
        582,1,0,0,0,151,584,1,0,0,0,153,588,1,0,0,0,155,591,1,0,0,0,157,
        602,1,0,0,0,159,604,1,0,0,0,161,607,1,0,0,0,163,611,1,0,0,0,165,
        624,1,0,0,0,167,168,5,47,0,0,168,169,5,47,0,0,169,173,1,0,0,0,170,
        172,8,0,0,0,171,170,1,0,0,0,172,175,1,0,0,0,173,171,1,0,0,0,173,
        174,1,0,0,0,174,176,1,0,0,0,175,173,1,0,0,0,176,177,6,0,0,0,177,
        2,1,0,0,0,178,179,5,47,0,0,179,180,5,42,0,0,180,188,1,0,0,0,181,
        189,8,1,0,0,182,184,5,42,0,0,183,182,1,0,0,0,184,185,1,0,0,0,185,
        183,1,0,0,0,185,186,1,0,0,0,186,187,1,0,0,0,187,189,8,2,0,0,188,
        181,1,0,0,0,188,183,1,0,0,0,189,193,1,0,0,0,190,192,5,42,0,0,191,
        190,1,0,0,0,192,195,1,0,0,0,193,191,1,0,0,0,193,194,1,0,0,0,194,
        196,1,0,0,0,195,193,1,0,0,0,196,197,5,42,0,0,197,198,5,47,0,0,198,
        199,1,0,0,0,199,200,6,1,0,0,200,4,1,0,0,0,201,203,7,3,0,0,202,201,
        1,0,0,0,203,204,1,0,0,0,204,202,1,0,0,0,204,205,1,0,0,0,205,206,
        1,0,0,0,206,207,6,2,0,0,207,6,1,0,0,0,208,209,7,4,0,0,209,8,1,0,
        0,0,210,211,7,5,0,0,211,212,7,6,0,0,212,10,1,0,0,0,213,214,7,7,0,
        0,214,215,7,8,0,0,215,216,7,9,0,0,216,217,7,10,0,0,217,12,1,0,0,
        0,218,219,7,9,0,0,219,220,7,11,0,0,220,221,7,12,0,0,221,222,7,9,
        0,0,222,14,1,0,0,0,223,224,7,13,0,0,224,225,7,14,0,0,225,226,7,14,
        0,0,226,227,7,11,0,0,227,228,7,9,0,0,228,229,7,15,0,0,229,230,7,
        10,0,0,230,16,1,0,0,0,231,232,7,5,0,0,232,233,5,56,0,0,233,18,1,
        0,0,0,234,235,7,5,0,0,235,236,5,49,0,0,236,237,5,54,0,0,237,20,1,
        0,0,0,238,239,7,5,0,0,239,240,5,51,0,0,240,241,5,50,0,0,241,22,1,
        0,0,0,242,243,7,5,0,0,243,244,5,54,0,0,244,245,5,52,0,0,245,24,1,
        0,0,0,246,247,7,6,0,0,247,248,7,16,0,0,248,249,5,51,0,0,249,250,
        5,50,0,0,250,26,1,0,0,0,251,252,7,6,0,0,252,253,7,16,0,0,253,254,
        5,54,0,0,254,255,5,52,0,0,255,28,1,0,0,0,256,257,7,12,0,0,257,258,
        7,7,0,0,258,259,7,17,0,0,259,260,7,5,0,0,260,261,7,10,0,0,261,262,
        7,18,0,0,262,30,1,0,0,0,263,264,7,13,0,0,264,265,7,5,0,0,265,266,
        7,10,0,0,266,267,7,15,0,0,267,268,7,17,0,0,268,269,7,19,0,0,269,
        32,1,0,0,0,270,271,7,7,0,0,271,272,7,5,0,0,272,273,7,20,0,0,273,
        274,7,9,0,0,274,275,7,12,0,0,275,276,7,7,0,0,276,277,7,15,0,0,277,
        278,7,20,0,0,278,279,7,16,0,0,279,34,1,0,0,0,280,281,7,7,0,0,281,
        282,7,5,0,0,282,283,7,20,0,0,283,284,7,9,0,0,284,285,7,12,0,0,285,
        286,7,7,0,0,286,287,7,15,0,0,287,288,7,20,0,0,288,289,7,16,0,0,289,
        290,5,95,0,0,290,291,7,7,0,0,291,292,7,21,0,0,292,36,1,0,0,0,293,
        294,7,22,0,0,294,295,7,15,0,0,295,296,7,7,0,0,296,297,7,9,0,0,297,
        38,1,0,0,0,298,299,7,7,0,0,299,300,7,5,0,0,300,301,7,20,0,0,301,
        302,7,9,0,0,302,40,1,0,0,0,303,304,7,5,0,0,304,305,7,10,0,0,305,
        306,7,7,0,0,306,307,7,9,0,0,307,308,7,17,0,0,308,309,7,23,0,0,309,
        310,7,15,0,0,310,311,7,11,0,0,311,312,5,95,0,0,312,313,7,19,0,0,
        313,314,7,9,0,0,314,315,7,15,0,0,315,316,7,17,0,0,316,42,1,0,0,0,
        317,318,7,5,0,0,318,319,7,10,0,0,319,320,7,7,0,0,320,321,7,9,0,0,
        321,322,7,17,0,0,322,323,7,23,0,0,323,324,7,15,0,0,324,325,7,11,
        0,0,325,326,5,95,0,0,326,327,7,22,0,0,327,328,7,15,0,0,328,329,7,
        19,0,0,329,44,1,0,0,0,330,331,7,24,0,0,331,332,7,24,0,0,332,333,
        7,5,0,0,333,334,7,22,0,0,334,46,1,0,0,0,335,336,7,22,0,0,336,337,
        7,9,0,0,337,338,7,25,0,0,338,339,7,5,0,0,339,340,7,20,0,0,340,341,
        7,15,0,0,341,342,7,11,0,0,342,48,1,0,0,0,343,344,7,16,0,0,344,345,
        7,17,0,0,345,346,7,9,0,0,346,347,7,25,0,0,347,348,7,5,0,0,348,349,
        7,12,0,0,349,350,7,5,0,0,350,351,7,14,0,0,351,352,7,10,0,0,352,353,
        5,95,0,0,353,354,7,7,0,0,354,355,7,5,0,0,355,356,7,20,0,0,356,357,
        7,9,0,0,357,50,1,0,0,0,358,359,7,16,0,0,359,360,7,17,0,0,360,361,
        7,9,0,0,361,362,7,25,0,0,362,363,7,5,0,0,363,364,7,12,0,0,364,365,
        7,5,0,0,365,366,7,14,0,0,366,367,7,10,0,0,367,368,5,95,0,0,368,369,
        7,7,0,0,369,370,7,5,0,0,370,371,7,20,0,0,371,372,7,9,0,0,372,373,
        7,12,0,0,373,374,7,7,0,0,374,375,7,15,0,0,375,376,7,20,0,0,376,377,
        7,16,0,0,377,52,1,0,0,0,378,379,7,16,0,0,379,380,7,17,0,0,380,381,
        7,9,0,0,381,382,7,25,0,0,382,383,7,5,0,0,383,384,7,12,0,0,384,385,
        7,5,0,0,385,386,7,14,0,0,386,387,7,10,0,0,387,388,5,95,0,0,388,389,
        7,7,0,0,389,390,7,5,0,0,390,391,7,20,0,0,391,392,7,9,0,0,392,393,
        7,12,0,0,393,394,7,7,0,0,394,395,7,15,0,0,395,396,7,20,0,0,396,397,
        7,16,0,0,397,398,5,95,0,0,398,399,7,7,0,0,399,400,7,21,0,0,400,54,
        1,0,0,0,401,402,7,6,0,0,402,403,7,5,0,0,403,404,7,26,0,0,404,405,
        7,9,0,0,405,406,7,22,0,0,406,407,7,25,0,0,407,408,7,8,0,0,408,409,
        7,15,0,0,409,410,7,17,0,0,410,56,1,0,0,0,411,412,7,23,0,0,412,413,
        7,15,0,0,413,414,7,17,0,0,414,415,7,25,0,0,415,416,7,8,0,0,416,417,
        7,15,0,0,417,418,7,17,0,0,418,58,1,0,0,0,419,420,7,6,0,0,420,421,
        7,5,0,0,421,422,7,26,0,0,422,423,7,9,0,0,423,424,7,22,0,0,424,425,
        7,13,0,0,425,426,7,5,0,0,426,427,7,10,0,0,427,428,7,15,0,0,428,429,
        7,17,0,0,429,430,7,19,0,0,430,60,1,0,0,0,431,432,7,12,0,0,432,433,
        7,7,0,0,433,434,7,17,0,0,434,435,7,24,0,0,435,436,7,25,0,0,436,437,
        7,7,0,0,437,62,1,0,0,0,438,439,7,10,0,0,439,440,7,12,0,0,440,441,
        7,7,0,0,441,442,7,17,0,0,442,443,7,24,0,0,443,444,7,25,0,0,444,445,
        7,7,0,0,445,64,1,0,0,0,446,447,7,11,0,0,447,448,7,5,0,0,448,449,
        7,12,0,0,449,450,7,7,0,0,450,66,1,0,0,0,451,452,7,20,0,0,452,453,
        7,15,0,0,453,454,7,16,0,0,454,68,1,0,0,0,455,456,7,24,0,0,456,457,
        5,33,0,0,457,70,1,0,0,0,458,459,7,13,0,0,459,460,7,14,0,0,460,461,
        7,14,0,0,461,462,7,11,0,0,462,72,1,0,0,0,463,464,7,12,0,0,464,465,
        7,7,0,0,465,466,7,17,0,0,466,74,1,0,0,0,467,468,7,23,0,0,468,469,
        7,13,0,0,469,470,7,5,0,0,470,471,7,10,0,0,471,76,1,0,0,0,472,473,
        7,7,0,0,473,474,7,12,0,0,474,78,1,0,0,0,475,476,7,7,0,0,476,477,
        7,12,0,0,477,478,7,7,0,0,478,479,7,21,0,0,479,80,1,0,0,0,480,481,
        7,5,0,0,481,482,7,19,0,0,482,483,7,9,0,0,483,484,7,15,0,0,484,485,
        7,17,0,0,485,82,1,0,0,0,486,487,7,5,0,0,487,488,7,22,0,0,488,489,
        7,15,0,0,489,490,7,19,0,0,490,84,1,0,0,0,491,492,7,22,0,0,492,493,
        7,9,0,0,493,494,7,25,0,0,494,86,1,0,0,0,495,496,7,16,0,0,496,497,
        7,7,0,0,497,88,1,0,0,0,498,499,7,16,0,0,499,500,7,7,0,0,500,501,
        7,12,0,0,501,90,1,0,0,0,502,503,7,16,0,0,503,504,7,7,0,0,504,505,
        7,12,0,0,505,506,7,7,0,0,506,507,7,21,0,0,507,92,1,0,0,0,508,509,
        7,6,0,0,509,510,7,25,0,0,510,511,7,8,0,0,511,512,7,15,0,0,512,513,
        7,17,0,0,513,94,1,0,0,0,514,515,7,23,0,0,515,516,7,25,0,0,516,517,
        7,8,0,0,517,518,7,15,0,0,518,519,7,17,0,0,519,96,1,0,0,0,520,521,
        7,6,0,0,521,522,7,13,0,0,522,523,7,5,0,0,523,524,7,10,0,0,524,98,
        1,0,0,0,525,526,7,15,0,0,526,527,7,10,0,0,527,528,7,19,0,0,528,100,
        1,0,0,0,529,530,3,99,49,0,530,531,7,4,0,0,531,102,1,0,0,0,532,533,
        5,58,0,0,533,534,5,58,0,0,534,104,1,0,0,0,535,536,5,43,0,0,536,106,
        1,0,0,0,537,538,5,45,0,0,538,108,1,0,0,0,539,540,5,42,0,0,540,110,
        1,0,0,0,541,542,5,47,0,0,542,112,1,0,0,0,543,544,5,37,0,0,544,114,
        1,0,0,0,545,546,5,61,0,0,546,116,1,0,0,0,547,548,5,33,0,0,548,549,
        5,61,0,0,549,118,1,0,0,0,550,551,5,62,0,0,551,552,5,61,0,0,552,120,
        1,0,0,0,553,554,5,60,0,0,554,555,5,61,0,0,555,122,1,0,0,0,556,557,
        5,62,0,0,557,124,1,0,0,0,558,559,5,60,0,0,559,126,1,0,0,0,560,561,
        5,33,0,0,561,128,1,0,0,0,562,563,3,125,62,0,563,130,1,0,0,0,564,
        565,3,123,61,0,565,132,1,0,0,0,566,567,5,40,0,0,567,134,1,0,0,0,
        568,569,5,41,0,0,569,136,1,0,0,0,570,571,5,91,0,0,571,138,1,0,0,
        0,572,573,5,93,0,0,573,140,1,0,0,0,574,575,5,44,0,0,575,142,1,0,
        0,0,576,577,5,58,0,0,577,144,1,0,0,0,578,579,5,63,0,0,579,146,1,
        0,0,0,580,581,5,35,0,0,581,148,1,0,0,0,582,583,5,46,0,0,583,150,
        1,0,0,0,584,585,7,15,0,0,585,586,7,10,0,0,586,587,7,22,0,0,587,152,
        1,0,0,0,588,589,7,14,0,0,589,590,7,17,0,0,590,154,1,0,0,0,591,592,
        5,58,0,0,592,593,5,61,0,0,593,156,1,0,0,0,594,598,2,49,57,0,595,
        597,3,159,79,0,596,595,1,0,0,0,597,600,1,0,0,0,598,596,1,0,0,0,598,
        599,1,0,0,0,599,603,1,0,0,0,600,598,1,0,0,0,601,603,5,48,0,0,602,
        594,1,0,0,0,602,601,1,0,0,0,603,158,1,0,0,0,604,605,2,48,57,0,605,
        160,1,0,0,0,606,608,5,45,0,0,607,606,1,0,0,0,607,608,1,0,0,0,608,
        609,1,0,0,0,609,610,3,157,78,0,610,162,1,0,0,0,611,616,7,27,0,0,
        612,615,7,27,0,0,613,615,3,159,79,0,614,612,1,0,0,0,614,613,1,0,
        0,0,615,618,1,0,0,0,616,614,1,0,0,0,616,617,1,0,0,0,617,164,1,0,
        0,0,618,616,1,0,0,0,619,621,5,13,0,0,620,622,5,10,0,0,621,620,1,
        0,0,0,621,622,1,0,0,0,622,625,1,0,0,0,623,625,5,10,0,0,624,619,1,
        0,0,0,624,623,1,0,0,0,625,166,1,0,0,0,13,0,173,185,188,193,204,598,
        602,607,614,616,621,624,1,0,1,0
    ]

class SubstraitTypeLexer(Lexer):

    atn = ATNDeserializer().deserialize(serializedATN())

    decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]

    LineComment = 1
    BlockComment = 2
    Whitespace = 3
    If = 4
    Then = 5
    Else = 6
    Boolean = 7
    I8 = 8
    I16 = 9
    I32 = 10
    I64 = 11
    FP32 = 12
    FP64 = 13
    String = 14
    Binary = 15
    Timestamp = 16
    Timestamp_TZ = 17
    Date = 18
    Time = 19
    Interval_Year = 20
    Interval_Day = 21
    UUID = 22
    Decimal = 23
    Precision_Time = 24
    Precision_Timestamp = 25
    Precision_Timestamp_TZ = 26
    FixedChar = 27
    VarChar = 28
    FixedBinary = 29
    Struct = 30
    NStruct = 31
    List = 32
    Map = 33
    UserDefined = 34
    Bool = 35
    Str = 36
    VBin = 37
    Ts = 38
    TsTZ = 39
    IYear = 40
    IDay = 41
    Dec = 42
    PT = 43
    PTs = 44
    PTsTZ = 45
    FChar = 46
    VChar = 47
    FBin = 48
    Any = 49
    AnyVar = 50
    DoubleColon = 51
    Plus = 52
    Minus = 53
    Asterisk = 54
    ForwardSlash = 55
    Percent = 56
    Eq = 57
    Ne = 58
    Gte = 59
    Lte = 60
    Gt = 61
    Lt = 62
    Bang = 63
    OAngleBracket = 64
    CAngleBracket = 65
    OParen = 66
    CParen = 67
    OBracket = 68
    CBracket = 69
    Comma = 70
    Colon = 71
    QMark = 72
    Hash = 73
    Dot = 74
    And = 75
    Or = 76
    Assign = 77
    Number = 78
    Identifier = 79
    Newline = 80

    channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]

    modeNames = [ "DEFAULT_MODE" ]

    literalNames = [ "<INVALID>",
            "'IF'", "'THEN'", "'ELSE'", "'BOOLEAN'", "'I8'", "'I16'", "'I32'", 
            "'I64'", "'FP32'", "'FP64'", "'STRING'", "'BINARY'", "'TIMESTAMP'", 
            "'TIMESTAMP_TZ'", "'DATE'", "'TIME'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'", 
            "'UUID'", "'DECIMAL'", "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'", 
            "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", 
            "'STRUCT'", "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'", 
            "'STR'", "'VBIN'", "'TS'", "'TSTZ'", "'IYEAR'", "'IDAY'", "'DEC'", 
            "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", 
            "'ANY'", "'::'", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'!='", 
            "'>='", "'<='", "'>'", "'<'", "'!'", "'('", "')'", "'['", "']'", 
            "','", "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'", "':='" ]

    symbolicNames = [ "<INVALID>",
            "LineComment", "BlockComment", "Whitespace", "If", "Then", "Else", 
            "Boolean", "I8", "I16", "I32", "I64", "FP32", "FP64", "String", 
            "Binary", "Timestamp", "Timestamp_TZ", "Date", "Time", "Interval_Year", 
            "Interval_Day", "UUID", "Decimal", "Precision_Time", "Precision_Timestamp", 
            "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary", 
            "Struct", "NStruct", "List", "Map", "UserDefined", "Bool", "Str", 
            "VBin", "Ts", "TsTZ", "IYear", "IDay", "Dec", "PT", "PTs", "PTsTZ", 
            "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus", 
            "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq", "Ne", 
            "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket", 
            "OParen", "CParen", "OBracket", "CBracket", "Comma", "Colon", 
            "QMark", "Hash", "Dot", "And", "Or", "Assign", "Number", "Identifier", 
            "Newline" ]

    ruleNames = [ "LineComment", "BlockComment", "Whitespace", "DIGIT", 
                  "If", "Then", "Else", "Boolean", "I8", "I16", "I32", "I64", 
                  "FP32", "FP64", "String", "Binary", "Timestamp", "Timestamp_TZ", 
                  "Date", "Time", "Interval_Year", "Interval_Day", "UUID", 
                  "Decimal", "Precision_Time", "Precision_Timestamp", "Precision_Timestamp_TZ", 
                  "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct", 
                  "List", "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", 
                  "TsTZ", "IYear", "IDay", "Dec", "PT", "PTs", "PTsTZ", 
                  "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon", 
                  "Plus", "Minus", "Asterisk", "ForwardSlash", "Percent", 
                  "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", 
                  "CAngleBracket", "OParen", "CParen", "OBracket", "CBracket", 
                  "Comma", "Colon", "QMark", "Hash", "Dot", "And", "Or", 
                  "Assign", "Int", "Digit", "Number", "Identifier", "Newline" ]

    grammarFileName = "SubstraitType.g4"

    def __init__(self, input=None, output:TextIO = sys.stdout):
        super().__init__(input, output)
        self.checkVersion("4.13.2")
        self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
        self._actions = None
        self._predicates = None


